home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / tzparse.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  4KB  |  108 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. '''Parse a timezone specification.'''
  5. import warnings
  6. warnings.warn('The tzparse module is obsolete and will disappear in the future', DeprecationWarning)
  7. tzpat = '^([A-Z][A-Z][A-Z])([-+]?[0-9]+)([A-Z][A-Z][A-Z]);([0-9]+)/([0-9]+),([0-9]+)/([0-9]+)$'
  8. tzprog = None
  9.  
  10. def tzparse(tzstr):
  11.     """Given a timezone spec, return a tuple of information
  12.     (tzname, delta, dstname, daystart, hourstart, dayend, hourend),
  13.     where 'tzname' is the name of the timezone, 'delta' is the offset
  14.     in hours from GMT, 'dstname' is the name of the daylight-saving
  15.     timezone, and 'daystart'/'hourstart' and 'dayend'/'hourend'
  16.     specify the starting and ending points for daylight saving time."""
  17.     global tzprog
  18.     if tzprog is None:
  19.         import re as re
  20.         tzprog = re.compile(tzpat)
  21.     
  22.     match = tzprog.match(tzstr)
  23.     if not match:
  24.         raise ValueError, 'not the TZ syntax I understand'
  25.     
  26.     subs = []
  27.     for i in range(1, 8):
  28.         subs.append(match.group(i))
  29.     
  30.     for i in (1, 3, 4, 5, 6):
  31.         subs[i] = eval(subs[i])
  32.     
  33.     (tzname, delta, dstname, daystart, hourstart, dayend, hourend) = subs
  34.     return (tzname, delta, dstname, daystart, hourstart, dayend, hourend)
  35.  
  36.  
  37. def tzlocaltime(secs, params):
  38.     '''Given a Unix time in seconds and a tuple of information about
  39.     a timezone as returned by tzparse(), return the local time in the
  40.     form (year, month, day, hour, min, sec, yday, wday, tzname).'''
  41.     import time as time
  42.     (tzname, delta, dstname, daystart, hourstart, dayend, hourend) = params
  43.     (year, month, days, hours, mins, secs, yday, wday, isdst) = time.gmtime(secs - delta * 3600)
  44.     if (yday + 1, hours) <= (yday + 1, hours):
  45.         pass
  46.     elif (yday + 1, hours) < (dayend, hourend):
  47.         tzname = dstname
  48.         hours = hours + 1
  49.     
  50.     return (year, month, days, hours, mins, secs, yday, wday, tzname)
  51.  
  52.  
  53. def tzset():
  54.     '''Determine the current timezone from the "TZ" environment variable.'''
  55.     global tzparams, timezone, altzone, daylight, tzname
  56.     import os as os
  57.     tzstr = os.environ['TZ']
  58.     tzparams = tzparse(tzstr)
  59.     timezone = tzparams[1] * 3600
  60.     altzone = timezone - 3600
  61.     daylight = 1
  62.     tzname = (tzparams[0], tzparams[2])
  63.  
  64.  
  65. def isdst(secs):
  66.     '''Return true if daylight-saving time is in effect for the given
  67.     Unix time in the current timezone.'''
  68.     import time
  69.     (tzname, delta, dstname, daystart, hourstart, dayend, hourend) = tzparams
  70.     (year, month, days, hours, mins, secs, yday, wday, isdst) = time.gmtime(secs - delta * 3600)
  71.     return None if (yday + 1, hours) <= (yday + 1, hours) else (yday + 1, hours) < (dayend, hourend)
  72.  
  73. tzset()
  74.  
  75. def localtime(secs):
  76.     '''Get the local time in the current timezone.'''
  77.     return tzlocaltime(secs, tzparams)
  78.  
  79.  
  80. def test():
  81.     asctime = asctime
  82.     gmtime = gmtime
  83.     import time
  84.     import time
  85.     import sys as sys
  86.     now = time.time()
  87.     x = localtime(now)
  88.     tm = x[:-1] + (0,)
  89.     print 'now =', now, '=', asctime(tm), x[-1]
  90.     now = now - now % 24 * 3600
  91.     if sys.argv[1:]:
  92.         now = now + eval(sys.argv[1])
  93.     
  94.     x = gmtime(now)
  95.     tm = x[:-1] + (0,)
  96.     print 'gmtime =', now, '=', asctime(tm), 'yday =', x[-2]
  97.     jan1 = now - x[-2] * 24 * 3600
  98.     x = localtime(jan1)
  99.     tm = x[:-1] + (0,)
  100.     print 'jan1 =', jan1, '=', asctime(tm), x[-1]
  101.     for d in range(85, 95) + range(265, 275):
  102.         t = jan1 + d * 24 * 3600
  103.         x = localtime(t)
  104.         tm = x[:-1] + (0,)
  105.         print 'd =', d, 't =', t, '=', asctime(tm), x[-1]
  106.     
  107.  
  108.